/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aqu.controlador.Contabilidad;

import aqu.bean.generico.BeanGenerico;
import aqu.persistencia.Dao.Contabilidad.ConCuentaManager;
import aqu.persistencia.Dao.Contabilidad.ConNivelCuentaManager;
import aqu.persistencia.Dao.Contabilidad.ConTipoCuentaManager;
import aqu.persistencia.entity.ConCuenta;
import aqu.persistencia.entity.ConNivelCuenta;
import aqu.persistencia.entity.ConTipoCuenta;
import aqu.persistencia.utilidad.MessagesController;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

/**
 *
 * @author Verito Ramirez
 *         Victor Jaramillo
 */
@ManagedBean(name = "cuentaController")
@ViewScoped
public class CuentaController extends BeanGenerico {

    private ConCuenta cuenta;
    private String codigocuenta="-";
    private List<ConCuenta> lista;
    private List<ConCuenta> lista1;
    private List<ConTipoCuenta> tipocuentalista;
    private List<ConNivelCuenta> nivelcuentalista;
    private ConCuentaManager ConCuentaManager = new ConCuentaManager();
    private ConTipoCuentaManager ConTipoCuentaManager = new ConTipoCuentaManager();
    private ConNivelCuentaManager ConNivelCuentaManager = new ConNivelCuentaManager();
    private boolean panelvisible;

    public CuentaController() {

        cuenta = new ConCuenta();
        lista = ConCuentaManager.getList();
        lista1 = ConCuentaManager.getList();
        tipocuentalista = ConTipoCuentaManager.getList();
        nivelcuentalista = ConNivelCuentaManager.getList();
    }

    public boolean isPanelvisible() {
        return panelvisible;
    }

    public void setPanelvisible(boolean panelvisible) {
        this.panelvisible = panelvisible;
    }

    public void llamarPanelvisible(ActionEvent event) {
        panelvisible = !panelvisible;
    }

    public List<ConCuenta> getLista() {        
        lista = ConCuentaManager.buscarporpoPadre(codigocuenta);
        return lista;
    }
    
    public List<ConCuenta> getLista1(){
        lista1 = ConCuentaManager.getList();
        return lista1;
    }
            

    public void setLista(List<ConCuenta> lista) {
        this.lista = lista;
    }
    
    public void setLista1(List<ConCuenta> lista1) {
        this.lista1 = lista1;
    }

    public void nuevo(ActionEvent actionEvent) {
        cuenta = new ConCuenta();
    }

    public String eliminar() {
        try {
            ConCuenta cuentaTemp = (ConCuenta) (cuenta);
            if (ConCuentaManager.delete(cuentaTemp) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }

        return "index";

    }

    public void insertar(ActionEvent actionEvent) {
        try {

            if (ConCuentaManager.create(cuenta) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }

    }

    public void modificar(ActionEvent actionEvent) {
        try {
            if (ConCuentaManager.update(cuenta) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }


    }

    public void rowSelectionListener(RowSelectorEvent event) {
        cuenta = lista.get(event.getRow());

    }
    
    public void rowSelectionListener1(RowSelectorEvent event) {
        cuenta = lista1.get(event.getRow());

    }

    public ConCuentaManager getConCuentaManager() {
        return ConCuentaManager;
    }

    public void setConCuentaManager(ConCuentaManager ConCuentaManager) {
        this.ConCuentaManager = ConCuentaManager;
    }

    public ConCuenta getCuenta() {
        return cuenta;
    }

    public void setCuenta(ConCuenta cuenta) {
        this.cuenta = cuenta;
    }

    public ConNivelCuentaManager getConNivelCuentaManager() {
        return ConNivelCuentaManager;
    }

    public void setConNivelCuentaManager(ConNivelCuentaManager ConNivelCuentaManager) {
        this.ConNivelCuentaManager = ConNivelCuentaManager;
    }

    public ConTipoCuentaManager getConTipoCuentaManager() {
        return ConTipoCuentaManager;
    }

    public void setConTipoCuentaManager(ConTipoCuentaManager ConTipoCuentaManager) {
        this.ConTipoCuentaManager = ConTipoCuentaManager;
    }

    public List<ConNivelCuenta> getNivelcuentalista() {
        return nivelcuentalista;
    }

    public void setNivelcuentalista(List<ConNivelCuenta> nivelcuentalista) {
        this.nivelcuentalista = nivelcuentalista;
    }

    public List<ConTipoCuenta> getTipocuentalista() {
        return tipocuentalista;
    }

    public void setTipocuentalista(List<ConTipoCuenta> tipocuentalista) {
        this.tipocuentalista = tipocuentalista;
    }

    public String getCodigocuenta() {
        return codigocuenta;
    }

    public void setCodigocuenta(String codigocuenta) {
        this.codigocuenta = codigocuenta;
    }
    
}